signature JAVA_TOKENS =
sig
type ('svalue,'pos) token
type svalue

val CLASS:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val PUBLIC:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val STATIC:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val MAIN:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val EXTENDS:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val LENGTH:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val SYSTEM_OUT_PRINTLN:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val THIS:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val NEW:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val RETURN:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token

val INT:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val BOOLEAN:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val STRING:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val VOID:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token

val IF:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val ELSE:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val THEN:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token

val DO:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val WHILE:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token

val TRUE:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val FALSE:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token

val OR:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val NOT:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val AND:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token

val GT:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val EQ:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val LT:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token

val TIMES:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val MINUS:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val PLUS:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val DIV:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val ASSIGN:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
 
val RPAREN:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val LPAREN:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val RBRACE:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val LBRACE:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val RBRACK:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val LBRACK:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val COLON:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val DOT:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val SEMICOLON:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val COMMA:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token

val ID: string * ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val INTEGER_LITERAL: int * ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token

val COMMENT:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
val EOF:  ErrorMsg.pos * ErrorMsg.pos ->  ('svalue,'pos) token
end







